System and method for building component applications using metadata defined mapping between message and data domains

ABSTRACT

It is desirable to drive down the complexity involved in developing the wireless application by reducing the need to do any explicit coding, as well as reducing device resources utilized by the application when provisioned. Having an intelligent wireless device runtime environment (Device Runtime) that provides a set of basic services to manage the wireless application as a series if application components, and their interactions, can simplify the development effort and reduce resource allocation. The wireless application is described as a set of components. The data domain for this category of applications is defined using atomic data components. The communication between the device and a server is defined using atomic message components. Both message and data components are described in metadata using a structured definition language such as XML. The relationships between the message and data components are embedded in the XML definitions in the form of message/data mappings. Typically, outgoing messages are derived from some underlying data component and incoming messages affect the current state (or data representation) of the application. It is therefore apparent that the metadata defined mapping relationship is preferable between the expression of data and message components.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of earlier non-provisionalapplication having application Ser. No. 10/787,929 filed Feb. 27, 2004now Pat. No. ______, granted on ______, and claims priority under 35U.S.C. 120 thereto. The disclosure of aforementioned Application10/787,929 is hereby incorporated be reference in its entirety.

BACKGROUND OF THE INVENTION

This application relates generally to communication of services over anetwork to a device.

There is a continually increasing number of terminal devices in usetoday, such as mobile telephones, PDAs with wireless communicationcapabilities, personal computers, self service kiosks and two-waypagers. Software applications which run on these devices increase theirutility. For example, a mobile phone may include an application whichretrieves the weather for a range of cities, or a PDA may include anapplication that allows a user to shop for groceries. These softwareapplications take advantage of the connectivity to a network in order toprovide timely and useful services to users. However, due to therestricted resources of some devices, and the complexity of deliveringlarge amounts of data to the devices, developing software applicationsfor a variety of devices remains a difficult and time-consuming task.

Currently, devices are configured to communicate with Web Servicesthrough Internet based Browsers and/or native applications. Browsershave the advantage of being adaptable to operate on a cross-platformbasis for a variety of different devices, but have a disadvantage ofrequesting pages (screen definitions in HTML) from the Web Service,which hinders the persistence of data contained in the screens. Afurther disadvantage of Browsers is that the screens arc rendered atruntime, which can be resource intensive. Native applications have theadvantage of being developed specifically for the type of deviceplatform, thereby providing a relatively optimized application programfor each runtime environment. However, native applications havedisadvantages of not being platform independent, thereby necessitatingthe development of multiple versions of the same application, as well asbeing relatively large in size, thereby taxing the memory resources ofthe device. Further, application developers need experience withprogramming languages such as Java and C++ to construct these hard codednative applications. There is a need for application programs that canbe run on client devices having a wide variety of runtime environments,as well as having a reduced consumption of device resources.

The systems and methods disclosed herein provide a component basedapplication environment to obviate or mitigate at least some of theabove presented disadvantages.

SUMMARY OF THE INVENTION

It is desirable to drive down the complexity involved in developing thewireless application by reducing the need to do any explicit coding, aswell as reducing device resources utilized by the application whenprovisioned. Having an intelligent wireless device runtime environment(Device Runtime) that provides a set of basic services to manage thewireless application as a series if application components, and theirinteractions, can simplify the development effort and reduce resourceallocation. The wireless application is described as a set ofcomponents. The data domain for this category of applications is definedusing atomic data components. The communication between the device and aserver is defined using atomic message components. Both message and datacomponents are described in metadata using a structured definitionlanguage such as XML. The relationships between the message and datacomponents are embedded in the XML definitions in the form ofmessage/data mappings. Typically, outgoing messages are derived fromsome underlying data component and incoming messages affect the currentstate (or data representation) of the application. It is thereforeapparent that the metadata defined mapping relationship is preferablebetween the expression of data and message components.

According to the present invention there is provided a method forgenerating a communication message instance based on a data instance forinteraction with an application executed on a device, the applicationincluding a data component having at least one data field definition anda message component having at least one message field definition, thecomponent definitions expressed in a structured definition language, themethod comprising the steps of: selecting the message componentcorresponding to the message instance; identifying at least one uniquemapping present in the message component, the mapping for specifying arelationship between the message component and the data component asdefined by a unique identifier representing the mapping; selecting thedata component mapped by the mapping according to the unique mappingidentifier; obtaining a data instance field value corresponding to thedata field definition of the mapped data component; generating a messagefield value of the message instance to include the data instance fieldvalue according to the format of the data field definition as defined inthe mapped data component.

According to a further aspect of the present invention there is provideda method for generating a data instance based on a message instancecorresponding to an application executed on a device, the applicationincluding a data component having at least one data field definition anda message component having at least one message field definition, thecomponent definitions expressed in a structured definition language, themethod comprising the steps of: selecting the message componentcorresponding to the message instance; identifying at least one uniquemapping present in the message component, the mapping for specifying arelationship between the message component and the data component asdefined by a unique identifier representing the mapping; selecting thedata component mapped by the mapping according to the unique mappingidentifier; obtaining a message instance field value from the messageinstance corresponding to the mapped data component; assigning themessage instance field value to a data field value of the data instanceaccording to the format of the data field definition as defined in themapped data component.

According to a still further aspect of the present invention there isprovided a method for generating a communication message instance basedon a data instance for interaction with an application executed on adevice, the application including a data component and a messagecomponent having at least one message field definition and at least onedata field definition, the component definitions expressed in astructured definition language, the method comprising the steps of:selecting the data component corresponding to the data instance;identifying a unique mapping present in the data component, the mappingfor specifying a relationship between the message component and the datacomponent as defined by a unique identifier representing the mapping;selecting the message component mapped by the mapping according to theunique mapping identifier; obtaining a data instance field valuecorresponding to the message field definition of the mapped messagecomponent; generating a message field value of the message instance toinclude the data instance field value according to the format of thedata field definition as defined in the mapped message component.

According to a further aspect of the present invention there is provideda method for generating a data instance based on a message instancecorresponding to an application executed on a device, the applicationincluding a data component and a message component having at least onemessage field definition and at least one data field definition, thecomponent definitions expressed in a structured definition language, themethod comprising the steps of: selecting the message componentcorresponding to the message instance; identifying a unique mappingpresent in the data component, the mapping for specifying a relationshipbetween the message component and the data component as defined by aunique identifier representing the mapping; selecting the messagecomponent mapped by the mapping according to the unique mappingidentifier; obtaining a message instance field value from the messageinstance corresponding to the data field definition of the mappedmessage component; assigning the message instance field value to a datafield value of the data instance according to the format of the datafield definition as defined in the mapped message component.

According to a further aspect of the present invention there is provideda device for generating a communication message instance based on a datainstance for interaction with an application executed on the device, theapplication including a data component having at least one data fielddefinition and a message component having at least one message fielddefinition, the component definitions expressed in a structureddefinition language, the method comprising the steps of: means forselecting the message component corresponding to the message instance;means for identifying at least one unique mapping present in the messagecomponent, the mapping for specifying a relationship between the messagecomponent and the data component as defined by a unique identifierrepresenting the mapping; means for selecting the data component mappedby the mapping according to the unique mapping identifier; means forobtaining a data instance field value corresponding to the data fielddefinition of the mapped data component; means for generating a messagefield value of the message instance to include the data instance fieldvalue according to the format of the data field definition as defined inthe mapped data component.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other features will become more apparent in the followingdetailed description in which reference is made to the appended drawingsby way of example only, wherein:

FIG. 1 is a block diagram of a network system;

FIG. 2 is a block diagram of a generic device of FIG. 1;

FIG. 3 is a block diagram of a component framework of the device of FIG.2;

FIG. 4 is a block diagram of a component application program of FIG. 2;

FIG. 5 shows a representative application packaging and hosting modelfor the system of FIG. 1;

FIG. 6 shows an example method of implementing the component applicationprogram of FIG. 4;

FIG. 7 shows a further example method of implementing the componentapplication program of FIG. 4;

FIGS. 8 a and 8 b are examples of a message level mapping for theapplication of FIG. 4;

FIGS. 9 a and 9 b are examples of a field level mapping for theapplication of FIG. 4;

FIGS. 10 a and 10 b are examples of a complex mapping for theapplication of FIG. 4;

FIG. 11 demonstrates an algorithm for producing an outgoing message witheffect of message mappings of FIGS. 8 a,b, 9 a,b and 10 a,b; and

FIG. 12 demonstrates an algorithm for processing an incoming messagewith effect of message mappings of FIGS. 8 a,b, 9 a,b and 10 a,b.

DESCRIPTION OF THE PREFERRED EMBODIMENTS Network System

Referring to FIG. 1, a network system 10 comprises a plurality ofgeneric terminal devices 100 for interacting with one or more genericschema defined services 106, via a coupled Wide Area Network (WAN) 104such as but not limited to the Internet. These generic terminal devices100 can be such as but not limited to personal computers 116, wirelessdevices 101, PDAs, self-service kiosks and the like. The genericservices provided by the service 106 can be Web Services and/or otherservices such as but not limited to SQL Databases, IDL-based CORBA andRMI/IIOP systems, Legacy Databases, J2EE, SAP RFCs, and COM/DCOMcomponents. Further, the system 10 can also have a gateway server 112for connecting the desktop terminals 116 via a Local Area Network (LAN)114 to the service 106. Further, the system 10 can also have a wirelessnetwork 102 for connecting the wireless devices 101 to the WAN 104. Itis recognized that other devices and computers (not shown) could beconnected to the web service 106 via the WAN 104 and associated networksother than as shown in FIG. 1. The generic terminal devices 100,wireless devices 101 and personal computers 116 are hereafter referredto as the devices 100 for the sake of simplicity. Web services 106 areselected for the following description of the system 10, for the sake ofsimplicity. However, it is recognized that other services could besubstituted for the web services 106, if desired. Further, the networks102, 104, 112 of the system 10 will hereafter be referred to as thenetwork 104, for the sake of simplicity.

Referring again to FIG. 1, the devices 100 transmit and receiverequests/response messages 105, respectively, when in communication withthe web services 106. The devices 100 can operate as web clients of theweb services 106 by using the requests/response messages 105 in the formof message header information and associated data content, for examplerequesting and receiving product pricing and availability from anon-line merchant. The web service 106 is an example of a system withwhich client application programs 302 (see FIG. 2) on the communicationdevices 100 interact via the wireless network 104 in order to provideutility to users of the communication devices 100.

For satisfying the appropriate requests/response messages 105, the webservice 106 can communicate with an application server 110 throughvarious protocols (such as but not limited to HTTP and component API)for exposing relevant business logic (methods) to client applicationprograms 302 (see FIG. 2) once provisioned on the devices 100. Theapplication server 110 can also contain the web service 106 software,such that the web service 106 can be considered a subset of theapplication server 110. The application programs 302 of the device 100can use the business logic of the application server 110 similarly tocalling a method on an object (or a function). It is recognized that theclient application program 302 can be downloaded/uploaded in relation tothe application server 110, through the messages 105 via the network104, directly to the devices 100. It is further recognized that thedevices 100 can communicate with one or more web services 106 andassociated application servers 110 via the networks 104.

Server Environment

Referring to FIG. 1, the web service 106 provides the informationmessages 105 which are used by the client application programs 302 (seeFIG. 2) on the devices 100. Alternatively, or in addition, the webservice 106 may receive and use the information messages 105 provided bythe client application programs 302 executed on the devices 100, orperform tasks on behalf of client application programs 302 executed onthe devices 100. The web service 106 can be defined as a softwareservice, which can implement an interface such as expressed using WebServices Description Language (WSDL) registered in Universal DiscoveryDescription and Integration (UDDI) in a web services registry, and cancommunicate through messages 105 with client devices 100 by beingexposed over the network 104 through an appropriate protocol such as theSimple Object Access Protocol (SOAP). In some implementations, SOAP is aspecification that defines the XML format for the messages 105,including a well-formed XML fragment enclosed in SOAP elements. SOAPalso supports document style applications where the SOAP message 105 isa wrapper around an XML document. A further optional part of SOAPdefines the HTTP binding (i.e. header), whereas some SOAPimplementations support MSMQ, MQ Series, SMTP, or TCP/IP transportprotocols. Alternatively, the web service 106 may use other knowncommunication protocols, message 105 formats, and the interface may beexpressed in other web services languages than described above.

Client Environment

Referring to FIG. 2, the component applications 302 are transmitted viathe network 104 and loaded into a memory module 210 of a deviceinfrastructure 204 of the device 100. Alternatively, the componentapplications 302 may be loaded via a serial connection, a USBconnections, or a short-range wireless communication system such as IR,802.11(x) Bluetooth™ (not shown). Once loaded onto the device 100, thecomponent applications 302 can be executed by a component framework 206on the device 100, which can convert the component applications 302 intonative code, which is executed by a processor 208 in the deviceinfrastructure 204. Alternatively, the component applications 302 may beinterpreted by another software module or operating system on the device100. In any event, the component applications 302 are run in a terminalruntime environment provided by the device 100, such that the runtimeenvironment is an intelligent software framework that provides a set ofbasic services to manage and execute typical application 302 behaviour(e.g. persistence, messaging, screen navigation and display).

Referring again to FIG. 1, the client runtime environment provided bythe devices 100 can be configured to make the devices 100 operate as webclients of the web services 106. It is recognized that the clientruntime environment can also make the devices 100 clients of any othergeneric schema-defined services over the network 104. The client runtimeenvironment of the devices 100 is preferably capable of generating,hosting and executing the client application programs 302 (which are inthe form of component applications—see FIG. 4 and description hereinbelow) on the device 100. Further, specific functions of the clientruntime environment can include such as but not limited to support forlanguage, coordinating memory allocation, networking, management of dataduring I/O operations, coordinating graphics on an output device of thedevices 100 and providing access to core object oriented classes andsupporting files/libraries. Examples of the runtime environmentsimplemented by the devices 100 can include such as but not limited toCommon Language Runtime (CLR) by Microsoft and Java Runtime Environment(JRE) by Sun Microsystems.

The terminal runtime environment of the devices 100 preferably supportsthe following basic functions for the resident executable versions ofthe client application programs 302 (see FIG. 2), such as but notlimited to:

-   -   provide a communications capability to send messages 105 to the        Web Services 106 or messages 105 to any other generic schema        defined services connected via the network 104 to the devices        100;    -   provide data input capabilities by the user on an input device        of the devices 100 to supply data parts for Web Services' 106        outgoing messages 105 (messages to the service);    -   provide data presentation or output capabilities for Web        Services' 106 response messages 105 (incoming messages) or        uncorrelated notifications on the output device;    -   provide data storage services to maintain local client data in        the memory module 210 (see FIG. 2) of the device 100; and    -   provide an execution environment for a scripting language for        coordinating operation of the application components 400, 402,        404, 406 (see FIG. 4) of the client application programs 302.

Referring to FIGS. 2, 4 and 5, the client runtime (for example providedby the component framework 206) loads metadata contained in thecomponent 400, 402, 404, 406 definitions and the builds the executableversion of the application program 302 on the device 100, via forexample an application container 300. There are, such as but not limitedto, two operational models for client runtime: template-based nativeexecution and metadata-based execution. With the template-based nativeexecution model the runtime hosts data, message, and screen templates500 pre-built on the device 100 using the native code. When theapplication program 302 definition is loaded, the client environmentprovided by the component framework 206 fills the templates 500 withmetadata-defined parameters from the components 400, 402, 404 and buildsthe executable client application program 302 in the native format. Theworkflow script (for example ECMAScript) of the workflow component 406could be either converted to native code or executed using anappropriate script interpreter 502 (e.g., ECMAScript interpreter) to anative code redirector 504, where the redirector 504 interprets calls tothe scripting language into operations on native components through anative runtime engine 506. With the metadata-based execution, theruntime environment of the component framework 206 either keepscomponent 400, 402, 404, 406 definitions in XML (for example), which areparsed during execution time or uses native representation of XML (forexample) nodes. During execution, the native runtime engine 506 operateson definitions of the components 400, 402, 404, 406 rather than onnative component entities.

Therefore, the native client runtime environment provides an interfacefor the client application programs 302 to the device 100 functionalityof the processor 208 and associated operating system of the deviceinfrastructure 204. The runtime environment preferably supplies acontrolled, secure and stable environment on the device 100, in whichthe component application programs 302 execute. The runtime environmentprovisions the definitions of the components 400. 402, 404, 406 tocreate the actual web client specific for each respective deviceinfrastructure 204 of the device 100. It is recognized for the sake ofsimplicity that the following description hereafter will refer to theclient runtime environment being provided by the component framework206, as an example only.

Communication Device

Referring to again to FIG. 2, the devices 100 are devices such as butnot limited to mobile telephones, PDAs, two-way pagers or dual-modecommunication devices. The devices 100 include a network connectioninterface 200, such as a wireless transceiver or a wired networkinterface card or a modem, coupled via connection 218 to a deviceinfrastructure 204. The connection interface 200 is connectable duringoperation of the devices 100 to the network 104, such as to the wirelessnetwork 102 by wireless links (e.g., RF, IR, etc.), which enables thedevices 100 to communicate with each other and with external systems(such as the web service 106) via the network 104 and to coordinate therequests/response messages 105 between the client application programs302 and the service 106 (see FIG. 1). The network 104 supports thetransmission of data in the requests/response messages 105 betweendevices and external systems, which are connected to the network 104.The network 104 may also support voice communication for telephone callsbetween the devices 100 and devices which are external to the network104. A wireless data transmission protocol can be used by the wirelessnetwork 102, such as but not limited to DataTAC. GPRS or CDMA.

Referring again to FIG. 2, the devices 100 also have a user interface202, coupled to the device infrastructure 204 by connection 222, tointeract with a user (not shown). The user interface 202 includes one ormore user input devices such as but not limited to a QWERTY keyboard, akeypad, a trackwheel, a stylus, a mouse, a microphone and the useroutput device such as an LCD screen display and/or a speaker. If thescreen is touch sensitive, then the display can also he used as the userinput device as controlled by the device infrastructure 204. The userinterface 202 is employed by the user of the device 100 to coordinatethe requests/response message messages 105 over the system 10 (seeFIG. 1) as employed by client application programs 302 of a componentframework 206, further described below.

Referring again to FIG. 2, operation of the device 100 is enabled by thedevice infrastructure 204. The device infrastructure 204 includes thecomputer processor 208 and the associated memory module 210. Thecomputer processor 208 manipulates the operation of the networkinterface 200, the user interface 202 and the component framework 206 ofthe communication device 100 by executing related instructions, whichare provided by an operating system and client application programs 302located in the memory module 210. Further, it is recognized that thedevice infrastructure 204 can include a computer readable storage medium212 coupled to the processor 208 for providing instructions to theprocessor and/or to load/update client application programs 302 in thememory module 210. The computer readable medium 212 can include hardwareand/or software such as, by way of example only, magnetic disks,magnetic tape, optically readable medium such as CD/DVD ROMS, and memorycards. In each case, the computer readable medium 212 may take the formof a small disk, floppy diskette, cassette, hard disk drive, solid statememory card, or RAM provided in the memory module 210. It should benoted that the above listed example computer readable mediums 212 can beused either alone or in combination.

Component Framework of Device

Referring again to FIG. 2, the component framework 206 of the device 100is coupled to the device infrastructure 204 by the connection 220. Theclient runtime environment the device 100 is provided by the componentframework 206, and is preferably capable of generating, hosting andexecuting the client application programs 302 (which are in the form ofcomponent applications—see below) from meta-data definitions. Therefore,component framework 206 provides the native client runtime environmentfor the client application programs 302 and is an interface to thedevice 100 functionality of the processor 208 and associated operatingsystem of the device infrastructure 204. The component framework 206provides the runtime environment by preferably supplying a controlled,secure and stable environment on the device 100, in which the componentapplication programs 302 execute in the application container 300, forexample. The application container 300 can be referred to as a smarthost container for the client application program 302, and can beresponsible for analyzing message meta-data (of the messages 105—seeFIG. 1) and for updating the representation of the meta-data in thememory module 210.

Referring to FIG. 3, the component framework 206 can be used to executethe client application programs 302 (such as Web Service clientapplications) within the terminal runtime environment and can supportaccess to Web Service 106 and associated application servers 110 (seeFIG. 1), via the request/response messages 105. The componentapplication programs 302 comprise software applications which areexecuted by the component framework 206. The component framework 206creates the application container 300 for each component 400, 402, 404.406 (see FIG. 4) of the application program 302, each time that thecomponent application program 302 is executed. The application container300 loads the components 400, 402, 404, 406 of the application program302 and can create native code which is executed by the processor 208 inthe device infrastructure 204. The component framework 206 thereforeprovides the host application containers 300 for provisioning thedefinitions of the components 400, 402, 404, 406 to create the actualweb client specific for each respective device infrastructure 204 of thecommunication devices 100. The application container 300 can provisionthe component application 302 as per the template-based native executionand metadata-based execution models as described above, by way ofexample only.

Referring again to FIG. 3, the component framework 206 can also provideframework services 304 (a standard set of generic services) to theclient application programs 302, in the event certain services are notincluded as part of the components 400, 402, 404, 406 (see FIG. 4) orreceived as separate components (not shown) as part of the componentapplication program 302. The application program 302 has communications214 with the application container 300, which can coordinatecommunications 216 with the framework services 304, as needed. Theframework services 304 of the component framework 206 coordinatecommunications via the connection 220 with the device infrastructure204. Accordingly, access to the device infrastructure 204, userinterface 202 and network interface 200 is provided to the clientapplication programs 302 by the component framework 206 and associatedservices 304. It is recognized that a portion of the operating system ofthe device infrastructure 204 (see FIG. 2) can represent the applicationcontainer 300 and any services of the framework services 304.

The framework services 304 can include such as but not limited to acommunication service 306, a presentation/screen service 308, apersistence service 310, an access service 312, a provisioning service314 and a utility service 316. The communication service 306 managesconnectivity between the component application programs 302 and theexternal system 10, such as the messages 105 and associated datasent/received in respect to the web service (by the communicationservice 306) on behalf of the component applications 302. As furtherdescribed below with reference to FIGS. 8 a,b, 9 a,b, 10 a,b thecommunication service 306 can be used to implement a series of mappings800 (see FIG. 8 a). The presentation service 308 manages therepresentation of the component application programs 302 as they areoutput on the output device of the user interface 202 (see FIG. 2). Thepersistence service 310 allows the component application programs 302 tostore data in the memory module 210 (see FIG. 2) of the deviceinfrastructure 204. It is recognised the persistence service 310 can beused to coordinate the modification/creation of data instances of thedata components 400 linked to the message components 404 via themappings 800 (see FIG. 8 a). The access service 312 provides thecomponent application programs 302 access to other software applicationswhich are present on the communication device 100. The provisioningservice 314 manages the provisioning of software applications on thecommunication device 100. Application provisioning can includerequesting and receiving new and updated component application programs302, configuring component application programs 302 for access toservices which are accessible via the network 104, modifying theconfiguration of component application programs 302 and services, andremoving component application programs 302 and services. The utilityservice 316 is used to accomplish a variety of common tasks, such asperforming data manipulation in the conversion of strings to differentformats.

It is recognized that the framework services 304 of the communicationdevice 100 can provide functionality to the component applicationprograms 302, which can include the services described above. Further,the framework services 304 can be integrated with the components 400,402, 404, 406 of the application 302 rather than provided as a separateframework 304. In any event, the component application programs 302 canhave access to the functionality of the communication device 100 throughintegrated and/or separate framework services 304.

Example Component Application Program

Referring to FIG. 2, the Web Service (for example) client applicationprograms 302 are executed within the terminal runtime environment of theComponent framework 206 and support access to Web Service operationsprovided by the service 106 (see FIG. 1). WSDL and SOAP protocoldefinitions clearly imply a messages/data pattern. In a WSDL Web Servicedefinition, the operations are defined using the notion of messages anddata parts, which are used to define the Web Service client applicationprograms 302 as a set of the related data 400 and the message 404components (see FIG. 4).

Referring to FIG. 4, a block diagram of the component applicationprogram 302 comprises the data components 400, the presentationcomponents 402 and the message components 404, which are coordinated byworkflow components 406 through communications 214 with the applicationcontainer 300. The structured definition language can be used toconstruct the components 400, 402, 404 as a series of metadata records,which consist of a number of pre-defined elements representing specificattributes of a resource such that each element can have one or morevalues. Each metadata schema typically has defined characteristics suchas but not limited to; a limited number of elements, a name of eachelement, and a meaning for each element. Example metadata schemasinclude such as but not limited to Dublin Core (DC), Anglo-AmericanCataloging Rules (AACR2), Government Information Locator Service (GILS),Encoded Archives Description (EAD), IMS Global Learning Consortium(IMS), and Australian Government Locator Service (AGLS). Encoding syntaxallows the metadata of the components 400, 402, 404 to be processed bythe device infrastructure 204 (sec FIG. 2), and encoding schemes includesuch as but not limited to XML, HTML, XHTML, XSML, RDF, Machine ReadableCataloging (MARC), and Multipurpose Internet Mail Extensions (MIME).

Referring again to FIG. 4, the data components 400 define data entitieswhich are used by the component application program 302, includingapplication data represented in for example native code or XML. Examplesof data entities which data components 400 may describe are orders,users, and financial transactions. Data components 400 define whatinformation is required to describe the data entities, and in whatformat the information is expressed. For example, the data component 400may define such as but not limited to an order which is comprised of aunique identifier for the order which is formatted as a number, a listof items which are formatted as strings, the time the order was createdwhich has a date-time format, the status of the order which is formattedas a string, and a user who placed the order which is formattedaccording to the definition of another one of the data components 400.Since data parts (elements) are usually transferred from message 105 tomessage 105 according to Web Services' 106 choreography rules,preferably there is persistence of data components 400. Data components400 may be dynamically generated according to Web Services' 106choreography definitions (if available) or defined by the applicationdesigner based on complex type definitions and/or message correlationinformation. It is recognised that the message components 404 can belinked via the mappings 800 to the data components 400 (see FIG. 8 a),as further described below.

Referring again to FIG. 4, the message components 404 define the formatof messages used by the component application program 302 to communicatewith external systems such as the web service 106, and include messagedata represented in for example native code or XML. For example, one ofthe message components 404 may describe such as but not limited to amessage for placing an order which includes the unique identifier forthe order, the status of the order, and notes associated with the order.Message component 404 definitions written in the structured definitionlanguage can uniquely represent (and map to) WSDL messages, and can begenerated dynamically at runtime. Accordingly, the dynamic generationcan be done for the component definitions for client applicationmessages 105, and associated data content, from standard Web Servicemetadata in the definition language used to express the web serviceinterface, for example such as but not limited to WSDL and BPEL. WebService messages 105 are defined within the context of operation andthere is defined correlations between the message components 404 in thecomponent application program 302 definition. This correlation could bedone using predefined message parameters and/or through separateworkflow components 406, as further defined below.

Referring again to FIG. 4, the presentation components 402 define theappearance and behavior of the component application program 302 as itdisplayed by the user interface 202. The presentation components 402 canspecify GUI screens and controls, and actions to be executed when theuser interacts with the component application 302 using the userinterface 202. For example, the presentation components 402 may definescreens, labels, edit boxes, buttons and menus, and actions to be takenwhen the user types in an edit box or pushes a button. The majority ofWeb Service consumers use a visual presentation of Web Service operationresults, and therefore provide the runtime environment on their devices100 capable of displaying user interface screens.

Referring again to FIG. 4, the workflow components 406 of the componentapplication program 302 define processing that occurs when an action isto be performed, such as an action specified by a presentation component402 as described above, or an action to be performed when messages 105(see FIG. 1) arrive from the system 10. Presentation workflow andmessage 105 processing are defined by the workflow components 406. Theworkflow components 406 are written as a series of instructions in aprogramming language or a scripting language, such as but not limited toECMAScript, and can be compiled into native code and executed by theapplication container 300, as described above. An example of theworkflow components 406 may be to assign values to data, manipulatescreens, or send the message 105. The workflow component 406 supports acorrelation between the messages 105 and defines application flow as aset of rules for operations on the other components 400, 402, 404.Multiple workflow components can be defined with respect to a givenapplication program 302.

ECMA (European Computer Manufacturers Association) Script is a standardscript language, wherein scripts can be referred to as a sequence ofinstructions that is interpreted or carried out by another programrather than by the computer processor. Some other examples of scriptlanguages are Perl, Rexx, VBScript, JavaScript, and Tcl/Tk. Thescripting languages, in general, are instructional languages that areused to manipulate, customize, and automate the facilities of anexisting system, such as the devices 100. In such systems, usefulfunctionality is already available through the user interface 202 (seeFIG. 2), and the scripting language is a mechanism for exposing thatfunctionality to program control. In this way, the device 100 is said toprovide the host runtime environment of objects and facilities whichcompletes the capabilities of the scripting language.

Accordingly, referring to FIG. 4, the client application programs 302can he defined as a set of platform-neutral component definitions,namely for data 400 and message 404 components, and presentationcomponents 402 using XML (or any other suitable structured definitionlanguage). The workflow components 406 can be defined using ECMAScript(or any other suitable platform-neutral scripting language). The clientruntime environment of the component framework 206 (see FIG. 2) cangenerate component templates based on meta-definitions, as furtherdescribed below, when the components 400, 402, 404, 406 of the componentapplication program 302 are provisioned on the device 100. With a largevariety of terminal runtime environments, the cross-platform standardssuch as XML or ECMAScript can be used to define application componentmetadata instead of pre-building the component application programs 302.This delayed binding can allow generic application definitions of thecomponent application programs 302 to be run on a wide variety ofterminal system environments, represented by various different devices100.

Expressing the data 400, message 404, and presentation 402 componentsusing XML or its derivatives, and the workflow component 406 using theECMAScript language or its subset, can allow an application developer toabstract the Web Service client from any specific platform orenvironment and implement in principle “develop once run everywhere”applications. The following example shows how a Web Services clientapplication program 302 could be expressed using a structured definitionlanguage, such as but not limited to XML, and a platform neutralscripting/programming language, such as but not limited to ECMAScript,defined components:

Example XML Data Components 400

  <data name=“Order”>     <item name=“orderId” type=“Number”key=“true”/>     <item name=“items” type=“String” array=“true”/>    <item name=“user” comp=“true” compName=“User”/>     <itemname=“orderStatus” type=“String”/> </data> ...

Example XML Message Components 404

<msg name=“ordConfirmation” type=“response” action=“mhConfirmation”>    <part name=“orderId” type=“String” />     <part name=“status”type=“String” /> </msg>  ...

Example XML Presentation Components 402

<screen name=“scrConfirmation” title=“Order Confirmation” param=“Order”>    <layout type=“vertical”>     <widget type=“label” value=“OrderConfirmation Result:”/>       < widget type=“edit”value=“@Order.OrderStatus@”/> </layout> ...     <menu>       <itemlabel=“Continue” navigate=“@scrMain@”/>       ...     </menu> </screen>...

Example ECMAScript Workflow Components 406

<actions>   <function name=“mhConfirmation”>     key =ordConfirmation.orderId;     order = Order.get(key);    order.orderStatus = ordConfirmation.status;    scrConfirmation.display(order);   </function>   ... </actions>

Referring to FIG. 4, as given above, it can be seen that the messagecomponents 404 relay the required data for the input and output of themessages 105. The corresponding data components 400 coordinate thestorage of the data in the memory module 210 (see FIG. 2) of the device100 for subsequent presentation on the user interface 202 (see FIG. 2)by the presentation components 402. The workflow components 406coordinate the transfer of data between the data 400, presentation 402,and message 404 components.

Further, the component application architecture can provide a relativelysmall application download size (consisting of component definitionsonly) as compared to hard coded native applications, and an effectivedata storage and persistence model. The client runtime is capable ofstoring and updating atomic data entities directly vs. manipulatingrendered presentations such as HTML pages for browser applications.

Example Operation of Component Application Model

Referring to FIGS. 1, 3 and 6, for example, operation 600 shows when thedevice 100 receives 902 the response message 105 containing messagedata, the appropriate workflow component 406 interprets 904 the datacontent of the message 105 according to the appropriate messagecomponent 404. The workflow component 406 then processes 906 the datacontent and inserts 910 the data into the corresponding data component400 for subsequent storage 912 in the memory module 210 (see FIG. 2).Further, if needed, the workflow component 406 also inserts 908 the datainto the appropriate presentation component 402 for subsequent display914 on the user interface 202 (see FIG. 2).

Referring to FIGS. 1, 3 and 7 operation 1000 shows data input 1002 foran action, such as pushing a button or selecting a menu item, which theuser performed 1003 on a user-interface element through the userinterface 202 (see FIG. 2). The relevant workflow component 406interprets 1004 the input data according to the appropriate presentationcomponent 404 and creates 1006 data entities which are defined by theappropriate data components 400. The workflow component 406 thenpopulates 1010 the data components 400 with the input data provided bythe user for subsequent storage 1012 in the memory module 210 (see FIG.2). Further, the workflow component 406 also inserts 1008 the input datainto the appropriate message component 404 for subsequent sending 1014of the input data as data entities to the web service in the message105, as defined by the message component 404.

Mapping Between Data and Message Components

As described above with reference to FIG. 4, the wireless componentapplications 302 are expressed as a collection of message 404, data 400and components 402, 406, including information that specifies how thesecomponents interact. The application 302 is expressed using a structureddefinition language such as XML. It is noted that the expression of bothmessages 404 and data 400 as components bear certain similarities:

-   -   each component 400, 404 is identified by a unique name; and    -   each component 400, 404 specifies one or more subfields        consisting of name and declared type.

In practice, typically the expression of the components 400, 404 by thedeveloper can be almost identical, while the behaviour of each of thecomponents 400, 404 of the application 302 is distinct. Therefore, byrecognizing the fact that message 105 (see FIG. 1) content is oftengenerated from some underlying data element, and in light of thesimilarities between expression of these components 400, 404, it isconvenient to introduce certain mappings 800 (see FIG. 8 a) to theexpression of message components 404, as further described below. Thesemappings 800 are essentially shortcuts to the expression of the message105 that specify how the message's definition is obtained regarding themessage component 404, and how the message component 404 behaves atruntime during execution of the application 302. The mapping 800 is astated relationship between the message component 404 definition and thedata component 400 definition. In relation to expression of the messagecomponent 404, using the mapping 800 can reduce the amount of metadatarequired to describe the component 404. Thus use of the mapping 800 canhave a direct effect on the amount of “code” required to describe theapplication 302. In relation to how the component 404 behaves atruntime, the mapping 800 specifies how linked data elements (describedby the data component 400) are resolved and affected by message state.In this regard, specifying the mapping 800 can reduce the need for thedeveloper to provide additional specific message handling code in theapplication 302.

Mapping Resolution Contract

Referring again to FIGS. 1 and 8 a, the application and correspondingservices 304 rely upon a mapping resolution contract or mapping rulehaving a unique identifier 802 (see FIG. 8 a). This mapping rule statesthat any mapping 800 attached to the data component 400 will map exactlyone key field 802 per mapped data type 804. This mapping rule providesfor unique identification and modification of the data instance affectedby the mapping 800. The mapping rule states that the mapping 800isolates an instance of the data component 400 to which the messagecontent of the corresponding message component 404 is linked. Datacomponent 400 instances are resolved by the unique identifier 802 (e.g.a key). It is noted that the composition of this identifier 802 could besuch as but not limited to a simple primary key or a composite keyarising from more than one field. A single field 804 (such as acomponent name) in the Data definition of' the data component 400 isidentified as referenced by this identifier 802. The mapping resolutioncontract provides that exactly one primary key field 802 is involved inthe mapping 800 to each linked data component 400. This one to oneproperty of the mapping 800 provides for the unique the resolution ofdata instances to which incoming message data applies, as furtherdescribed below. A particular data instance is represented as a selecteddata component 400 that is assigned data values to each of the fieldnames 808. A message instance 806 is represented as a selected messagecomponent 404 that is assigned data values to contained message field(s)through the mappings 800.

Two types of mappings 800 are described: field level mappings 901, andmessage level mappings 801. The following elaborates on how message 404to data 400 component mappings 800 may be expressed, and specify aruntime resolution contract that exists to determine uniquely wheremessage content is to be applied.

Message Level Mappings 801

Referring again to FIG. 8 a, the Message level Mapping 801 is a mapping800 from the message component 404 directly to the named data component400 definition, such that message 806 field properties (messageinstance) are identical to those on the mapped data component. Messagelevel mappings 801 state that the message instance 806 derives itscomplete specification from the linked data clement of the datacomponent 400. All fields described in the linked data component 400will be present in the message instance 806, observing both field names808, type declarations 810 and field order. For example, this type ofmessage level mapping 801 can be convenient when the incoming oroutgoing message instances 806 exactly duplicate the informationrepresented by the data instance of the data component 400. Referring toFIG. 8 b, a sample message level mapping 801 between the Order datacomponent 400 and the submitOrder message component 404 is illustrated.The mapping resolution contract for the mapping 801 is satisfied by theimplicit linking of orderId primary key field 802. A sample structureddefinition language description (e.g. XML) of this relationship isprovided in FIG. 8 b. It is apparent from the XML expression that thesize of the application 302 definition (see FIG. 4) can be reduced byintroducing this mapping 801, as the listing of arguments 812 of thedata component 400 is not repeated in the linked message component 404.

Field Level Mappings 901

The Field level Mapping 901 (see FIG. 9 a, 9 b) provides a mapping 800from a particular field 904 of the message component 404 definition tothe named field 808 of the named data component 400 definition. Fieldlevel mappings 901 may arise where a more flexible arrangement ofmappings 800 is required. In this configuration, each field mapping 901specifies a linkage between each selected field 904 of the messageinstance 906 and the field 808 of the data instance corresponding to thedata component 400. There may be any number of such field mappings 901.Field mappings 901 may involve only one target data component 400(one-to-one linkage) or multiple data components 400 may be linked tothe message instance 906 through separate field mappings 901(one-to-many linkage). In order to satisfy the mapping resolutioncontract, the key field 802 is included for every data component 400that is linked to the message component 404.

Referring to FIG. 9 a, one-to-one mapping 901 arrangements incorporate alink to a single data component 400. One field mapping 901 is made tothe field representing the primary key 802 of the data component 400,thus linking the message instance 906 with the data instance of the datacomponent 400. Other mappings 901 are made between the selected messagefields 904 of the component 404 and corresponding data fields 808 of thecomponent 400. FIG. 9 a depicts a typical field level mapping 901relationship where a subset of the Part fields 808 are linked to thepriceReduction message field 904. The mapping resolution contract issatisfied by making the link 901 to the partNo field which is identifiedas the key field 802 of Part. A sample XML expression for theserelationships is provided in FIG. 9 b, where Key field mapping 901 isshown in bold. It is recognised that the message instance 906 can havemore than one message field 904, each mapped 901 to a respective datafield 808 under the same key 802 (i.e. the message component 404 can belinked to two or more data fields 808 of the data component 400 usingthe same key 802).

Complex Mappings 1001

Referring to FIGS. 10 a and 10 b, a complex mapping 1000 arrangementconsists of field level mappings 901 to two or more data components 400.As with the one-to-one mapping case of FIG. 8 a,b, different unique onesof the primary key field 802 mapping is provided for every datacomponent 400 linked through the set of field mappings 901. FIG. 10 bshows an XML representation of the relationships between the orderUpdatemessage 404 and the Order and Inventory data components 400. For each ofthe two data components 400 linked, a respective primary field mapping901 with keys 802 is in place; orderId field key 802 for Order 400 andpartNo field key 802 for Inventory 400. This satisfies the mappingresolution contract. These primary key field mappings 901 are shown inbold.

In view of the examples shown in FIGS. 8 a,b, 9 a,b, and 10 a,b, othermapping 800 configurations are possible. Examples of such include suchas but not limited to Extended Definition, Message Prototyping, andArrival Event Processing, as further described below. An ExtendedDefinition is a message component 404 that extends the message 801 orField mapping 901 configuration by defining additional un-mapped fields904. This extended message instance 906 may extend its definition, inthe presence of mappings 801, 901, by adding fields 904 that are notmapped to a respective data component 400 but rather complete their ownspecification within the message component definition 404. These fields904 may be added to either the message 906 that has one or more fieldmappings 901, or the message 906 that is mapped 801 to a respective datacomponent 400. Extended definition can provide an additional measure offlexibility to the specification of the mapped message 906. MessagePrototyping can be defined as the ability to extend the stateddefinition of another message component 404. This mechanism has asimilar effect as in object oriented inheritance; all the declaredfields 904 of the parent message 906 will be available to the extendingmessage 906. With regard to mapping 801, 901 relationships, theextending message mappings 801,901 could override any mappingspecifications stated on the parent message 906. For Message ArrivalEvent Processing, the mapping mechanism can be further enhanced bypermitting the association of additional processing code to the messagereception. The body of processing code can be identified through thespecification of the message component 404 through application XML. Theprocessing code may be a script (such as ECMAScript) embodied in theapplication 302 (e.g. a workflow component 406), or may identify astandard native transformation offered by the Device Runtime environmentof the component framework 206 (see FIG. 2). Handling of message arrivalevent processing is further discussed below.

Message Generation 1100

Referring to FIGS. 8 a,b, 9 a,b, and 11, for the origination of messageinstances 906, the message to data mappings 801, 901 define the sourceand format for content that the message instance 906 will carry. Themessage format may be derived identically from the linked data component400 (message mapping 801) or may be defined by the aggregate effect ofmultiple data component 400 relationships (field level mapping 901).Finally, some message fields can carry their own declarations (extendeddefinition). In order to generate the originating message instance 906that specifies either type of mapping 801, 901, all dependent datacomponent 400 instances are supplied to the input of the generationprocess 1100. In addition the use of the extended declaration of fields904 implies that the supplied message instance 906 provides thenecessary field value.

Referring to FIGS. 9 a,b and 11, the ultimate generation 1114 of amessage instance M (corresponding to message instance 806,906) is doneusing a message declaration Ms (corresponding to message component 404).In the case of direct message mapping 801, the mapped data componentdefinition Ds (corresponding to data component 400) is used with inputdata instance d to determine the ultimate message instance M. In step1102, the message component Ms is obtained and in step 1104, a decisionis made by the device runtime environment (for example the communicationservice 306—see FIG. 3) by examining the component Ms to see whethermessage level mapping 801 is present. In the YES case, the metadatadeclaration Ds is obtained 1106 as defined by the mapping 801. Theservice 306 inputs 1108 the data instance d values from the persistenceservice 310 and writes 1112 in the message field 904 of the messageinstance Ms. The communication service 306 then analyses 1110 the datacomponent Ds to see if there are any more data fields 808 for relatingto the message instance M implied by the mapping 801. In the YES case.steps 1106, 1108, and 1112 are repeated Until all of the fields 808 areincluded in the message instance M. The message instance M is thengenerated at step 1114.

In the case of field mapping 901 the data component definition Ds_(p)and subordinate data field declarations Ds.f_(n) are extracted byinterrogating the message field level mapping 901 by the communicationsservice 306. The appropriate field value 808 (d.f_(n)) from input datainstance d_(i) is added into the output message instance M. In step 1104in the NO case, at step 1116 the communication service 306 determineswhether there are field mappings 901 present, if no then the currentcontents of the message instance M are generated at step 1114, as notedabove. Otherwise, the message field 904 descriptions are analysed 1118and where field mappings 901 are in place 1120, the mapped datacomponent type is obtained 1124, the mapped field type declaration isobtained 1126 from the data component Ds, and the data value of the datainstance corresponding to the declaration is obtained 1128 from thepersistence service 310. The values are then written in thecorresponding message field 904 using the format of the data componentDs. If there are no further mappings 901, then the message instance M isgenerated at step 1114. Finally, in the case of an extended definition,the field format is taken directly 1122 from Ms, and it is expected thatthe field value is available through input message instance M. It isrecognised that a combination of the message and field mappings 801, 901as described above could be provided, in particular where more than onetype of mapping is provided in the message instance M (i.e. multiplemappings 801, 901 for multiple components Ds linked to the messagecomponent Ms).

Message Processing 1200

Upon arrival of the message instance M (see FIG. 12), mappings 800 haveone of two effects:

-   -   cause field d.f_(n) updates in the mapped data component        instance(s) d; and    -   cause creation of a new data component instance(s) d with fields        d.f_(n) as determined by further mapping relationships 800.

The data instance(s) d to which message field values M.f_(n) apply isdetermined by virtue of the message to data mapping resolution contract.Data instances d arc resolved by taking the message field values M.f_(n)that are mapped to data primary key fields 802 (see FIG. 8 a). Dependingon the type of mappings 800 employed, there may be one (message mapping801), or one or more (field mapping 901) data instances d affected bymessage M arrival at either the device 100 or the web service 106. Forfinding and updating data, the message field value M.f_(n) correspondingto the message field 904 (see FIG. 9 a), mapped to data primary keyfield, is not unique. A data instance d of the mapped typed alreadyexists with the primary key value 802. The data instance d is resolvedby this primary key value 802, and all other mappings 800 to this datatype update the fields d.f_(n) on this data instance d. It is noted thatthere may be more than one data instance d affected by this process whenfield mappings 901 are employed. For creating new data, the messagefield value M.f_(n) corresponding to the message field mapped to dataprimary key field, is unique. As a result, a new instance of data d iscreated with the associated primary key field value 802. All subsequentmappings to this data type update the fields d.f_(n) on the newlycreated data instance d. As with “find and update”, there may be morethan one data instance d created when using field mappings 901. For thedata resolution and update process, the processing of arrival messages Mand effect on existing/new data instances d is depicted in FIG. 12.Extended definition (unmapped) fields have no bearing in the dataresolution and update process. For simplicity, the case of detectingthis field type is not depicted in the following. FIG. 12 shows theresolution and update process for data components 400 associated to themessage instance m through mappings 800.

At step 1202 the metadata definition for the message instance m isobtained from the message component Ms, where the message instance m isrelated to the message component 404 at step 1204. In the case of adirect message mapping 801 at step 1206, the data componentspecification Ds is obtained 1208 from the mapping information. Theprimary key field of Ds is determined 1210 and the value to be appliedto this field (m.f_(pk)) is obtained 1212 from the corresponding fieldof m. At step 1214 an existing version of the instance d is searched inthe memory 210 (see FIG. 2). Using this value, the instance of Ds mayeither be found 1216 or created 1218, thus producing d. At step 1220more fields of the data component Ds are determined. If yes, the datacomponent definitions for the corresponding fields are analysed 1222 andthe remaining field values of m are applied 1224 to each of thecorresponding fields of the resolved, thus generating 1226 theupdated/created data instance d.

At step 1228 in the case of field mappings 901, primary keys for each ofthe field mappings 901 are determined. The data component specificationDs is obtained 1230 from the mapping information 901. The resolutionprocess relies on determining all field level mappings 901 from Ms thatare mapped to data component primary fields: Ms.f_(pki). The componentdata type of the field mapping 901 can be determined from Ms.f_(pki) asDs_(i). Using 1232 the key value 802 from the input message m for thisfield (m.f_(pki)), the data instance of Ds_(i) may be either found 1236or created 1234, thus producing the data instance d_(i) corresponding toDs_(i). The data instances d_(i) are resolved and updated one at a timeby selecting 1238 each field di.f_(n) in sequence. The mapped messagefield Ms.f_(p) is obtained 1240 and the corresponding mapped fielddefinition Dsi.f_(n) is obtained 1242. Remaining fields of Ms that aremapped 901 to fields of Ds_(i) have their values taken from the messageinstance field m.f_(p) and applied 1244 to d_(i).f_(n) using thecorresponding field format of Ds_(i); Ds_(i).f_(n). This processcontinues until all mapped data instances are updated, thus generating dat step 1226.

As stated previously, referring to FIG. 1, it may be desirable toassociate a script or other executable unit (e.g. the workflow component406)—see FIG. 4) to perform additional processing or transformations onthe application 302 when the message 105 arrives. To this end, themessage component definition 404 may specify the address of a customprocessing unit (part of the framework 206) that will be invoked when amessage 105 of this type is received. In addition to executing thescript, the intelligent Device Runtime makes available the message 105and all its field values to the scope of the processing unit. Further,all data instances d_(i) affected through mappings 800 are madeavailable to the scope of the processing unit.

Although the disclosure herein has been drawn to one or more exemplarysystems and methods, many variations will be apparent to thoseknowledgeable in the field, and such variations are within the scope ofthe application. For example, although XML and a subset of ECMAScriptare used in the examples provided, other languages and language variantsmay be used to define the component applications 302. Further, it isrecognised as an alternative to the above described mapping 800 andoperation 1100, 1200, the definition of the data fields 808 (see FIG. 8)could be contained in the message component 404 (see FIG. 4). Therefore,the generation of the message instance would be based on data fielddefinitions included in the message component 404 definitions, and thedata component 400 would be mapped 800 to the corresponding messagecomponent 404 having included data field definitions. Accordingly,generation of the data instances would rely upon data field definitionscontained in the mapped message component 404.

1. A method for configuring a communication device to communicate amessage instance in accordance with a component application executing ina runtime environment on a device, the component application includingat least one data component having at least one data field definitionand at least one message component having at least one message fielddefinition, the component definitions expressed in a structureddefinition language, and the message instance generated from acorresponding message component, the method comprising the steps of:defining at least one data component each having at least one data fielddefinition; defining the corresponding message component includingdefining a unique mapping to a particular one or more of the at leastone data field definitions, said unique mapping linking the definitionof a particular message instance to the definition of a particular oneor more data field instances and said unique mapping defined by a uniqueidentifier representing the mapping in accordance with a mappingresolution contract resolved at runtime by the runtime environmentoperating on the message and data component definitions; wherein, atruntime, said device obtains at least one data instance field valuecorresponding to the at least one data field of the mapped particulardata component to populate the at least one message field of the messageinstance and communicates the message instance.
 2. The method accordingto claim 1, wherein a plurality of the data field definitions of thedata component is shared between the at least one message component andthe at least one data component as represented by the mapping.
 3. Themethod according to claim 1 further comprising defining additionalprocessing code coupled to the at least one message component forassisting in processing of the message instance at runtime.
 4. Themethod according to claim 3, wherein the processing code specifies anaddress of a provisioning unit for handling the processing code.
 5. Themethod according to claim 1 comprising defining said mapping as a fieldlevel mapping linking a first one of the message field definitions to afirst one of the data field definitions and a second one of the messagefield definitions to a second one of the data field definitions.
 6. Themethod according to claim 5, wherein the number of message fielddefinitions of the message component is less that the number of datafield definitions of the mapped data component.
 7. The method accordingto claim 5, wherein the first message field definition is mapped by afirst one of the unique identifiers to a first one of the datacomponents and the second message field definition is mapped by a secondone of the unique identifiers to a second one of the data componentsdifferent from the first data component.
 8. The method according toclaim 5, wherein the first message field definition and the secondmessage field definition are mapped to the same data component using theunique identifier.
 9. The method according to claim 1, wherein thestructured definition language is XML based.
 10. The method according toclaim 9, wherein the application is a wireless application and thedevice is a wireless device.
 11. The method according to claim 1,wherein the unique identifier is a simple primary key.
 12. The methodaccording to claim 1, wherein the unique identifier is a composite keydefined from more than one field.
 13. The method according to claim 1,wherein the message component defines a parent one of the messagecomponents coupled to a dependent one of the message components.
 14. Themethod according to claim 13 wherein at runtime, said runtimeenvironment overrides one of the mappings of the parent messagecomponent by respective one of the mappings of the dependent messagecomponent.
 15. A method for configuring a communication device topopulate a data instance in accordance with a component applicationexecuting in a runtime environment on a device, the componentapplication including at least one data component having at least onedata field definition and at least one message component having at leastone message field definition, the component definitions expressed in astructured definition language, and the data instance generated from acorresponding data component, the method comprising the steps of:defining at least one message component each having at least one messagefield definition; defining the corresponding data component includingdefining a unique mapping to a particular one or more of the at leastone message field definitions, said unique mapping linking thedefinition of a particular data instance to the definition of aparticular one or more message field instances and said unique mappingdefined by a unique identifier representing the mapping in accordancewith a mapping resolution contract resolved at runtime by the runtimeenvironment operating on the message and data component definitions:wherein, at runtime, said device receives a message instance andidentifies a corresponding message component thereby to obtain at leastone message instance field value corresponding to the at least one datafield of the mapped particular data component to populate the at leastone data field of the data instance.
 16. The method according to claim15, wherein a plurality of the message field definitions of the messagecomponent is shared between the at least one data component and the atleast one message component as represented by the mapping.
 17. Themethod according to claim 15 further comprising the defining additionalprocessing code coupled to the at least one data component for assistingin processing of the data instance.
 18. The method according to claim17, wherein the processing code specifies an address of a provisioningunit for handling the processing code.
 19. The method according to claim15, comprising defining said mapping as a field level mapping linking afirst one of the data field definitions to a first one of the messagefield definitions and a second one of the data field definitions to asecond one of the message field definitions.
 20. The method according toclaim 19, wherein the number of data field definitions of the datacomponent is less that the number of message field definitions of themapped message component.
 21. The method according to claim 15, whereinthe first data field definition is mapped by a first one of the uniqueidentifiers to a first one of the message components and the second datafield definition is mapped by a second one of the unique identifiers toa second one of the message components different from the first messagecomponent.
 22. The method according to claim 15, wherein the first datafield definition and the second data field definition are mapped to thesame message component using the unique identifier.
 23. The methodaccording to claim 15, wherein the structured definition language is XMLbased.
 24. The method according to claim 23, wherein the application isa wireless application and the device is a wireless device.
 25. Themethod according to claim 15, wherein the unique identifier is a simpleprimary key.
 26. The method according to claim 15, wherein the uniqueidentifier is a composite key defined from more than one field.
 27. Themethod according to claim 15, wherein the data component defines aparent one of the data components coupled to a dependent one of the datacomponents.
 28. The method according to claim 27 further comprising thestep of overriding one of the mappings of the parent data component byrespective one of the mappings of the dependent data component.
 29. Asystem for configuring a communication device to communicate a messageinstance in accordance with a component application executing in aruntime environment on a device, the component application including atleast one data component having at least one data field definition andat least one message component having at least one message fielddefinition, the component definitions expressed in a structureddefinition language, and the message instance generated from acorresponding message component, the system comprising: a processor andmemory coupled thereto, said memory storing instructions and data forconfiguring said to system to: define at least one data component eachhaving at least one data field definition; define the correspondingmessage component including defining a unique mapping to a particularone or more of the at least one data field definitions, said uniquemapping linking the definition of a particular message instance to thedefinition of a particular one or more data field instances and saidunique mapping defined by a unique identifier representing the mappingin accordance with a mapping resolution contract resolved at runtime bythe runtime environment operating on the message and data componentdefinitions; wherein, at runtime, said device obtains at least one datainstance field value corresponding to the at least one data field of themapped particular data component to populate the at least one messagefield of the message instance and communicates the message instance. 30.A system for configuring a communication device to populate a datainstance in accordance with a component application executing in aruntime environment on a device, the component application including atleast one data component having at least one data field definition andat least one message component having at least one message fielddefinition, the component definitions expressed in a structureddefinition language, and the data instance generated from acorresponding data component, the system comprising: a processor andmemory coupled thereto, said memory storing instructions and data forconfiguring said to system to: define at least one message componenteach having at least one message field definition; define thecorresponding data component including defining a unique mapping to aparticular one or more of the at least one message field definitions,said unique mapping linking the definition of a particular data instanceto the definition of a particular one or more message field instancesand said unique mapping defined by a unique identifier representing themapping in accordance with a mapping resolution contract resolved atruntime by the runtime environment operating on the message and datacomponent definitions; wherein, at runtime, said device receives amessage instance and identifies a corresponding message componentthereby to obtain at least one message instance field valuecorresponding to the at least one data field of the mapped particulardata component to populate the at least one data field of the datainstance.